package com.rs.admin.config.mybatisplus;

import com.baomidou.mybatisplus.mapper.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;

import java.util.Date;

/**
 * 公共字段填充
 * @author hedonglin
 * @company 睿思科技
 * @email 1048791780@qq.com
 * @date 2017年12月13
 */
public class MyMetaObjectHandler extends MetaObjectHandler{
    /**
     * 当字段策略是0:"忽略判断"时，或者插入或更新全部字段含有非空时将会自动填充
     * @param metaObject
     */

    @Override
    public void insertFill(MetaObject metaObject) {
        // 更多查看源码测试用例
        System.out.println("*************************");
        System.out.println("insert fill");
        System.out.println("*************************");

        // 测试下划线
        Object createTime = getFieldValByName("createTime", metaObject);//mybatis-plus版本2.0.9+
        System.out.println("createTime=" + createTime);
        if (createTime == null) {
            setFieldValByName("createTime", new Date(), metaObject);//mybatis-plus版本2.0.9+
        }
        Object updateTime = getFieldValByName("updateTime", metaObject);//mybatis-plus版本2.0.9+
        System.out.println("updateTime=" + updateTime);
        if (createTime == null) {
            setFieldValByName("updateTime", new Date(), metaObject);//mybatis-plus版本2.0.9+
        }
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        //更新填充
        System.out.println("*************************");
        System.out.println("update fill");
        System.out.println("*************************");
        //mybatis-plus版本2.0.9+
        setFieldValByName("updateTime", new Date(), metaObject);
    }
}
